<?

class Qi_Dir
{
  /**
   * Exclui um arquivo ou diretorio recursivamente.
   */
  public static function del($_target)
  {
     
      //file?
      if( is_file($_target) ) {
          if( is_writable($_target) ) {
              if( @unlink($_target) ) {
                  return true;
              }
          }

          return false;
      }

      //dir?
      if( is_dir($_target) ) {
          if( is_writeable($_target) ) {
              foreach( new DirectoryIterator($_target) as $_res ) {
                  if( $_res->isDot() ) {
                      unset($_res);
                      continue;
                  }

                  if( $_res->isFile() ) {
                      del( $_res->getPathName() );
                  } elseif( $_res->isDir() ) {
                      del( $_res->getRealPath() );
                  }
                 
                  unset($_res);
              }

              if( @rmdir($_target) ) {
                  return true;
              }
          }

          return false;
      }
  }
}

?>